/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.dao;

import br.ufc.quixada.adrs.dao.config.PostGresMapConfig;
import br.ufc.quixada.adrs.model.Movimentacao;
import java.sql.SQLException;
import java.util.List;

/**
 *
 * @author Caio
 */
public class MovimentacaoDAO {

    public void insert(Movimentacao movimentacao) throws SQLException {
        movimentacao.setId(proxId());
        PostGresMapConfig.getSqlMapClient().insert("addMovimentacao", movimentacao);
    }

    public void update(Movimentacao movimentacao) throws SQLException {
        PostGresMapConfig.getSqlMapClient().update("updateMovimentacao", movimentacao);
    }

    public void delete(Long id) throws SQLException {
        PostGresMapConfig.getSqlMapClient().delete("deleteMovimentacao", id);
    }

    public Movimentacao getById(Long id) throws SQLException {
        return (Movimentacao) PostGresMapConfig.getSqlMapClient().queryForObject("getMovimentacaoById", id);
    }

    public List<Movimentacao> getByQuantitativoId(Long id) throws SQLException {
        return (List<Movimentacao>) PostGresMapConfig.getSqlMapClient().queryForList("getMovimentacaoByQuantitativoId", id);
    }

    public List<Movimentacao> getAll() throws SQLException {
        return (List<Movimentacao>) PostGresMapConfig.getSqlMapClient().queryForList("getAllMovimentacao");
    }

    public Long proxId() throws SQLException {
        Long i = (Long) PostGresMapConfig.getSqlMapClient().queryForObject("getMaxMovimentacaoId");
        if (i == null) {
            i = 0L;
        }
        return i + 1;
    }
}
